package com.liushuyv.calculator.ui;

/*
 **@Author:刘淑钰
 **Created on 2020/12/5
 * 泛型测试盒子，与运算器无关
 * 1.只能存储整数，处理整数，同理定义float也一样
 * 2.先定义泛型类 class name<T>{getA ,setA,构造函数等对数据的处理}
 * 3.使用的时候先构造对象，使用new，在<>里面加上各个类型的引用形式，添哪种他就是哪种类型
 * 4.直接把new出来的对象快乐的使用
 */
/*  private int a;
   public class Box {

    public int getA(){
        return a;
    }

    public void setA(int a) {
        this.a = a;
    }
}*/
public class BoxTest{
    public static void main(String[] args){
        Box<Integer> a =new Box<>();//这里涉及到初始型和引用型的初始化，由于泛型是自定义的一种类型，必须使用这种方式，是否传值设计构造函数的多态。
        a.setA(9);
        System.out.println(a.getA());//调用对象的方法

        Box<Float> b=new Box<>(6.3f);//5.1要表示Float类型，在后面加一个f，否则默认是double类型
        System.out.println(b.getA());

    }
}
//泛型类,一个文件里只能有一个公共类，T叫做泛型变元，它的数据类型由初始化而成的对象来决定
class Box<T> {
    private T a;

    public Box(){};
    public Box(T b){this.a =b;};
    public T getA() {
        return a;
    }

    public void setA(T a) {
        this.a = a;
    }
}